<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <div id="app">
      <!-- v-on指令是用来添加事件的 -->
      <!-- 所有的事件，要将onclick -> v-on:click -->
      <button v-on:click="handleClick">btn</button>
      <input type="text" v-on:change="handleChange" />

      <hr />

      <!-- 如果事件足够简单，那么内联地写事件 -->
      <!-- 在html中，使用变量的时候不需要加this的，但是在事件处理函数中，需要加上this -->
      <button v-on:click="show = !show">change</button>
      <p v-if="show">你看到我了</p>

      <hr />

      <!-- 事件处理函数的括号是可以加，也可以不加 -->
      <!-- 如果加了括号，那么就可以传递参数了 -->
      <button v-on:click="fn(1)">alert</button>
      <button v-on:click="fn(2)">alert</button>

      <hr />

      <ul>
        <li v-for="item in list">
          {{ item.title }} -
          <button v-on:click="clickMe(item.title)">点我</button>
        </li>
      </ul>

      <hr />

      <!-- 如果想拿event对象，不能加括号，默认参数event -->
      <button v-on:click="getEvent">获取event对象</button>
      <!-- 如果加了括号，还想拿到event对象,需要传入$event的参数 -->
      <button v-on:click="getEvent2(8, $event)">获取event对象2</button>
    </div>

    <script src="../Vue.js"></script>
    <script>
      new Vue({
        el: "#app",
        data: {
          show: true,
          list: [
            {
              id: 1,
              title: "领悟习近平总书记的“青年观”",
            },
            {
              id: 2,
              title: "青春有为 时代有我  接续传承 不负韶华",
            },
            {
              id: 3,
              title: "生命至上 复工  奋斗  生力军  逆行者  青春密码  乐章",
            },
          ],
        },
        // methods里面是专门用于写事件处理函数的
        methods: {
          handleClick() {
            console.log(123);
          },
          handleChange() {
            console.log("input的值被改变了");
          },
          // change() {
          //   this.show = !this.show;
          // },
          fn(num) {
            console.log(num);
          },
          clickMe(title) {
            console.log(title);
          },
          getEvent(e) {
            console.log(e);
          },
          getEvent2(num, e) {
            console.log(num, e);
          },
        },
      });
    </script>
  </body>
</html>
